package com.samba.sessions;

import java.util.Collection;

import com.samba.entites.Category;
import com.samba.entites.CreditProjetUtilisateur;
import com.samba.entites.Entrepreneur;
import com.samba.entites.Gestionnaire;
import com.samba.entites.Preteur;
import com.samba.entites.Projet;
import com.samba.entites.Type;
import com.samba.entites.Utilisateur;


public interface AdminServiceDAO {

	/** CRUD for User */
	public abstract Utilisateur addGestionnaire(Utilisateur gestionnaire);

	public abstract Utilisateur updateGestionnaire(Utilisateur gestionnaire);

	public abstract void deleteGestionnaire(int id);

	public abstract Collection<Gestionnaire> findAllGestionnaire();

	public abstract Collection<Preteur> findAllPreteur();

	public abstract Collection<Entrepreneur> findAllEntrepeneur();

	public abstract Collection<Utilisateur> findAllUtilisateurs();

	public abstract Utilisateur findUtilisateurById(Integer id);

	/** CRUD for Type */

	public abstract Type addType(Type type);

	public abstract void deleteType(int id);

	public abstract Type updateType(Type type);

	public abstract Collection<Type> findAllTypes();

	public abstract Type findTypeById(Integer id);

	/** CRUD for Category */

	public abstract Category addCategory(Category category);

	public abstract Category updateCategory(Category category);

	public abstract void deleteCategory(int id);

	public abstract Collection<Category> findAllCategories();

	public abstract Category findCategoryById(Integer id);

	/** CRUD for Project */

	public abstract Projet addProjet(Projet projet);

	public abstract void deleteProjet(int id);

	public abstract Projet updateProjet(Projet projet);

	public abstract Collection<Projet> findAllProjets();

	public abstract Projet findProjetById(Integer id);

	/** CRUD for credit */

	public abstract CreditProjetUtilisateur addCredit(
			CreditProjetUtilisateur credit);

	public abstract CreditProjetUtilisateur updateCredit(
			CreditProjetUtilisateur credit);

	public abstract void deleteCredit(int id);

	public abstract CreditProjetUtilisateur findCreditById(Integer id);

	public abstract Collection<CreditProjetUtilisateur> findAllCredit();

}
